home *** CD-ROM | disk | FTP | other *** search
- /*
- * Aes object library interface
- *
- * objc_add Add an object to an object tree
- * objc_delete Delete an object from an object tree
- * objc_draw Draw an Object
- * objc_find Find an Object under mouse
- * objc_offset Compute offset of object relative to screen
- * objc_order Move an object to a new position
- * objc_edit Let user edit text in an object
- * objc_change Change an Objects state
- *
- * ++jrb bammi@cadence.com
- * modified: mj -- ntomczak@vm.ucs.ualberta.ca
- */
- #include "common.h"
-
- #ifdef __DEF_ALL__
-
- #define L_objc_add
- #define L_objc_del
- #define L_objc_dra
- #define L_objc_fin
- #define L_objc_off
- #define L_objc_ord
- #define L_objc_edi
- #define L_objc_cha
-
- #endif /* __DEF_ALL__ */
-
-
- #ifdef L_objc_add
-
- /* Add an Object to tree
- * return 0 on error >0 no error
- */
- int objc_add(void *Tree, int Parent, int Child)
- {
- _int_in[0] = Parent;
- _int_in[1] = Child;
- _addrin[0] = Tree;
- return __aes__(AES_CONTROL_ENCODE(40, 2, 1, 1));
- }
- #endif /* L_objc_add */
-
- #ifdef L_objc_del
-
- /* Delete an Object from a tree
- * return 0 on error >0 no error
- */
- int objc_delete(void *Tree, int Object)
- {
- _addrin[0] = Tree;
- _int_in[0] = Object;
- return __aes__(AES_CONTROL_ENCODE(41, 1, 1, 1));
- }
- #endif /* L_objc_del */
-
-
- #ifdef L_objc_dra
-
- /* Draw an Object
- * Tree Address of Tree containing Object
- * Start Index of Starting Object
- * Depth max depth to draw to
- * Cx, Cy, Cw, Ch define the clipping rectangle
- *
- * return 0 on error >0 no error
- */
- int objc_draw(void *Tree, int Start, int Depth,
- int Cx, int Cy, int Cw, int Ch)
- {
- _int_in[0] = Start;
- _int_in[1] = Depth;
- _int_in[2] = Cx;
- _int_in[3] = Cy;
- _int_in[4] = Cw;
- _int_in[5] = Ch;
- _addrin[0] = Tree;
-
- return __aes__(AES_CONTROL_ENCODE(42, 6, 1, 1));
- }
- #endif /* L_objc_dra */
-
-
- #ifdef L_objc_fin
-
- /* Find an object under mouse form
- * Tree Address of tree containing object Start
- * Start The object at which to start the search
- * Depth Max depth of tree to search
- * Mx, My mouse Location
- *
- * returns Index of object found (0 thru n), -1 == no object
- */
- int objc_find(void *Tree, int Start, int Depth, int Mx, int My)
- {
- _int_in[0] = Start;
- _int_in[1] = Depth;
- _int_in[2] = Mx;
- _int_in[3] = My;
- _addrin[0] = Tree;
-
- return __aes__(AES_CONTROL_ENCODE(43, 4, 1, 1));
- }
- #endif /* L_objc_fin */
-
- #ifdef L_objc_off
-
- /* Compute Object offset rel. to screen
- * returns 0 on error >0 no error
- */
- int objc_offset(void *Tree, int Object,
- int *X, int *Y)
- {
- int retval;
-
- _addrin[0] = Tree;
- _int_in[0] = Object;
-
- retval = __aes__(AES_CONTROL_ENCODE(44, 1, 3, 1));
-
- *X = _int_out[1];
- *Y = _int_out[2];
-
- return retval;
- }
- #endif /* L_objc_off */
-
-
- #ifdef L_objc_ord
-
- /* Move an Object to NewPos in Tree
- * returns 0 on error >0 no error
- */
- int objc_order(void *Tree, int Object, int NewPos)
- {
- _int_in[0] = Object;
- _int_in[1] = NewPos;
- _addrin[0] = Tree;
-
- return __aes__(AES_CONTROL_ENCODE(45, 2, 1, 1));
- }
- #endif /* L_objc_ord */
-
-
- #ifdef L_objc_edi
-
- /* Let user edit text in Object
- * returns 0 on error >0 no error
- */
- int objc_edit(void *Tree, int Object, int Char, int Index, int Kind,
- int *NewIndex)
- {
- int retval;
-
- _int_in[0] = Object;
- _int_in[1] = Char;
- _int_in[2] = Index;
- _int_in[3] = Kind;
- _addrin[0] = Tree;
-
- retval = __aes__(AES_CONTROL_ENCODE(46, 4, 2, 1));
-
- *NewIndex = _int_out[1];
-
- return retval;
- }
- #endif /* L_objc_edi */
-
- #ifdef L_objc_cha
-
- /* Ch.State of Ob
- * returns 0 on error >0 no error
- */
- int objc_change(void *Tree, int Object, int Res, int Cx, int Cy, int Cw,
- int Ch, int NewState, int Redraw)
- {
- _int_in[0] = Object;
- _int_in[1] = Res; /* reserved (for what?) */
- _int_in[2] = Cx;
- _int_in[3] = Cy;
- _int_in[4] = Cw;
- _int_in[5] = Ch;
- _int_in[6] = NewState;
- _int_in[7] = Redraw;
- _addrin[0] = Tree;
-
- return __aes__(AES_CONTROL_ENCODE(47, 8, 1, 1));
- }
- #endif /* L_objc_cha */
-
- /* - eof - */
-